$(function () {
  var currentPage = 1;
  var pageSize = 4;
  function render() {
    $.ajax({
      type: 'get',
      url: '/category/querySecondCategoryPaging',
      data: {
        page: currentPage,
        pageSize: pageSize
      },
      dataType: 'json',
      success: function (res) {
        console.log(res);
        $("tbody").html(template("tmp", res));
        setPage(res.total);
      }
    })
  }

  render();
  //  分页初始化
  function setPage(total) {
    $("#paginator").bootstrapPaginator({
      bootstrapMajorVersion: 3,//默认是2，如果是bootstrap3版本，这个参数必填
      currentPage: currentPage,//当前页
      totalPages: Math.ceil(total / pageSize),//总页数
      size: "mini",//设置控件的大小，mini, small, normal,large
      onPageClicked: function (event, originalEvent, type, page) {
        //为按钮绑定点击事件 page:当前点击的按钮值
        currentPage = page;
        render();
      }
    });
  }

  // 实现添加分类按钮的功能
  // 1.点击添加分类按钮，获取一级分类数据，渲染下拉列表
  $(".btn-add").click(function () {
    $.ajax({
      type: 'get',
      url: "/category/queryTopCategoryPaging",
      data: {
        page: 1,
        pageSize: 50
      },
      dataType: "json",
      success: function (res) {
        
        // 将数据渲染到页面
        $(".dropdown-text").html(template("tp", res));
      }
    })
  })

  // 2.点击下拉列表项，将下拉列表项的内容添加到 选择框 =>事件委托
  $(".dropdown-text").on("click", ".li-a", function () {
    var txt = $(this).text();
    var id = $(this).data('id');
    $("#dropdownText").text(txt);
    // 将选中的一级分类的id设置到input 隐藏表单元素中
    // 属性选择器
    $('[name="categoryId"]').val(id);
    $('#add-form').data("bootstrapValidator").updateStatus("categoryId", "VALID");
  })

  // 3.点击上传图片，将图片的地址添给img的src
  $("#fileupload").fileupload({
    dataType: "json",
    // done:当上传成功后，回调时执行
    // data:图片上传后的对象
    done: function (e, data) {
      var picAddr = data.result.picAddr;
      $(".img-box img").attr("src", picAddr);
      // 因为img不是表单，所以不能通过表单获取到，图片的地址
      // => 这里将图片的地址，传给隐藏的表单的name属性
      $("#brandLogo").val(picAddr);
      // console.log($("#hidden").attr("name"));
      // 重置校验状态
      $('#add-form').data("bootstrapValidator").updateStatus("brandLogo", "VALID")
    }
  })
  // 添加表单校验
  $("#add-form").bootstrapValidator({
    
    //1. 指定不校验的类型，默认为[':disabled', ':hidden', ':not(:visible)'],可以不设置
    // 因为：brandName和categoryId都是放在隐藏的表单里的 => 这里要去掉 ':hidden', ':not(:visible)'这两个不校验的类型
    // excluded:[':disabled', ':hidden', ':not(:visible)'],
     excluded: [':disabled'],
    //2. 指定校验时的图标显示，默认是bootstrap风格
    feedbackIcons: {
      valid: 'glyphicon glyphicon-ok',
      invalid: 'glyphicon glyphicon-remove',
      validating: 'glyphicon glyphicon-refresh'
    },
    //3. 指定校验字段
    fields: {
      //校验二级分类，对应name表单的name属性
      brandName: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入二级分类名称'
          }
        }
      },
      categoryId: {
        validators: {
          notEmpty: {
            message: "请选择一级分类"
          }
        }
      },
      brandLogo: {
        validators: {
          notEmpty: {
            message: '请上传图片'
          }
        }
      }

    }
  })

  // 注册校验成功事件, 通过 ajax 进行添加  
  $("#add-form").on("success.form.bv", function (e) {
    e.preventDefault();  
    $.ajax({
      type: "post",
      url: "/category/addSecondCategory",
      data: $("#add-form").serialize(),
      dataType: "json",
      success: function (res) {
        // console.log(res);
        // 隐藏模态框
        $(".add-second").modal('hide');
        // 重置表单
        $('#add-form').data("bootstrapValidator").resetForm(true);
        // 传入true，重置样式和数据，不传true。只重置样式
         // 重新渲染第一页
         currentPage = 1;
         render();
         // 找到下拉菜单文本重置
         $('#dropdownText').text("请选择一级分类")
         // 找到图片重置
         $('.img-box img').attr("src", "images/none.png")
      }
    })
  })
})